package co2.engine;

import java.io.Serializable;
import java.util.List;

import org.springframework.dao.DataIntegrityViolationException;

import co2.pojos.BankMotivasi;
import co2.pojos.BankSoal;
import co2.pojos.ChartPojo;
import co2.pojos.FileUpload;
import co2.pojos.HasilMotivasi;
import co2.pojos.HasilTest;
import co2.pojos.Kelompok;
import co2.pojos.Material;
import co2.pojos.MindMenu;
import co2.pojos.MstRole;
import co2.pojos.MstUser;
import co2.pojos.PR;
import co2.pojos.PaketMotivasi;
import co2.pojos.PaketSoal;
import co2.pojos.Silabus;
import co2.pojos.SoalLks;
import co2.pojos.ViewUser;

public interface DAOInterface {


	public Object get(Class clazz, Serializable id);
	
	public void delete(Class clazz, Serializable id) throws Exception;
	
	public void update(Object obj) throws Exception;
	
	public void save(Object obj) throws DataIntegrityViolationException, Exception;
	
	public List<MindMenu> getMindMenuByParent(String parent);
	
	public List<MstUser> getAllMstUser();
	
	public List<MstRole> getAllRole();
	
	public List<Material> getAllMaterial();
	
	public List<Material> getAllMaterialByRole(String role);

	public List<ChartPojo> getAllChartPojo();
	
	public List<PaketSoal> getAllPaketSoal();
	
	public List<BankSoal> getBankSoalByPsId(String psId);

	public List<PaketMotivasi> getAllPaketMotivasi();
	
	public List<BankMotivasi> getSoalByPaketMotivasi(String psId);
	
	public List<MstUser> getMstUserByAssignPaket(String paketId);

	public List<MstUser> getMstUserByAssignMotivasi(String paketId);
	
	public List<ViewUser> getUserForAssignmentView();
	
	public List<ViewUser> getAllForAssignmentViewMotivasi();
	
	public List<HasilTest> hasiltestExist(String userId, String paketId);
	
	public List<HasilTest> getAllHasilTest();
	
	public List<HasilTest> getAllByPaketSoalId(String paketId);
	
	public List<Silabus> getAllSilabus();
	
	public List<HasilMotivasi> getAllHasilMotivasiByUserId(String userId);
	
	public List<HasilMotivasi> getAllHasilMotivasiByUserIdAndPaket(String userId, String psId);
	
	public Kelompok getKelompokForUser(String userId);
	
	public List<MstUser> getDaftarAnggotaKelompok(String kelompokId);
	
	public List<MstUser> getSiswaYgBelumPunyaKelompok(String userId);
	
	public SoalLks getSoalLksByKelompokId(String kelompokId);
	
	public List<Kelompok> getAllKelompok();
	
	public List<Kelompok> getKelompokJoinHasilLks();
	
	public List<PR> getAllPR();
	
	public List<FileUpload> getAllFileUpload();

	
}
